This application claims the priority of Korean Patent Application No. 2003-75227, filed on Oct. 27, 2003, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
1. Field of the Invention
The present invention relates to coding and signal processing for a high density magnetic recording system, and more particularly, to a maximum transition run (MTR) code encoding and decoding method and apparatus suitable for a high density recording system.
2. Description of the Related Art
Conventional codes include a general modulation code and a relatively low rate maximum transition run (MTR) code. Examples of general modulation codes used for hard disc drives of magnetic recording systems include a rate-8/9 code and a rate-16/17 code. In the rate-8/9 code and the rate-16/17 code, since the number of consecutive data transitions increases and recording density increases, a decrease in data detection performance is caused, and an increase in recording density is limited.
To solve these problems, recent development efforts have focused on MTR coding technologies. In a conventional MTR code, to allow improvement of detection performance in a high density write channel, code technologies where the number of consecutive data transitions is equal to or less than 2 have been developed. However, an increase in a code rate is limited.
An MTR coding technology will be described in brief. A run-length limited (RLL) modulation code is most frequently used in magnetic or optical recording/reproducing systems. In the RLL code, a (d, k) constraint condition allows a generation interval of transition in a modulated non-return-to-zero inversion (NRZI) waveform to be between at least (d+1) bits and at most (k+1) bits by allowing the number of consecutive ‘0s’ between any two ‘1s’ to be between at least d and at most k. The (d, k) code allows inter-symbol interference (ISI) to decrease and simplifies timing recovery.
The MTR code dramatically improves a detection performance as compared with a conventional recording (0, k) code by improving a minimum distance characteristic for recorded data in a high density magnetic recording system. By preventing 3 or more consecutive recording transitions from being generated, 4/5, 5/6, and 6/7 coding technologies have been developed. These codes have relatively high code rates while having detection performance gains similar to a gain of a (1, 7) code. Here, if the maximum number of acceptable transitions (j) is 2, a capacity of the MTR code is obtained according to a k value as shown in Table. 1.
TABLE 1Capacity of an MTR (j = 2) codeKCapacitykCapacity40.8376 80.876050.8579 90.877460.8680100.878270.8732∞0.8791
A rate-4/5 MTR coding technology will now be described. In a rate-4/5 MTR code building method, {circle around (1)} codewords including a ‘111’ pattern are removed from all codewords composed of 5 bits, {circle around (2)} by removing codewords including a ‘11’ pattern at a beginning part or an ending part, a condition j=2 can be satisfied when a code sequence is composed, and {circle around (3)} a codeword ‘00000’ is removed so as not to allow a codeword where k=∞ to be generated.
According to the method, since the number of acceptable codewords is 16, a rate-4/5 code can be built, and the highest acceptable value of k in the code is 8 as shown in Table. 2.
TABLE 2Rate-4/5 MTR (j = 2; k = 8) code table00001 00110 01100 10010 00010 01000 01101 10100 00100 10000 10000 10101 00101 01010 10001 10110 
A rate-5/6 MTR code conversion table is shown in Table. 3.
TABLE 3Conversion table of a rate-5/6 MTR (j = 2; k = 6) code“STATE-0”“STATE-1”Conversion Table Conversion Table Input Output Input Output 00000 000000 00000 000000 00001 000001 00001 000001 00010 000010 00010 000010 00011 000001 00011 000001 00100 000100 00100 000100 00101 000101 00101 000101 00110 000110 00110 000110 00111 100101 00111 100101 01000 001000 01000 001000 01001 001001 01001 001001 01010 001010 01010 001010 01011 100100 01011 100100 01100 001100 01100 001100 01110 001101 01110 001101 01111 100010 01111 100010 10000 100000 10000 100000 10001 010000 10001 010000 10010 010001 10010 010001 10011 010100 10011 010100 10100 010101 10100 010101 10101 010110 10101 010110 10110 101101 10110 101101 11000 011000 11000 011000 11001 011001 11001 011001 11010 011010 11010 011010 11011 101100 11011 101100 11100 101000 11100 101000 11101 101010 11101 101010 11110 110100 11110 110010 11111 110101 11111 110110 
Table. 3 shows a rate-5/6 MTR (j=2) code. The rate-5/6 MTR j=2) code is converted using conversion tables divided into two states, and an encoding and decoding method is as follows: {circle around (1)} To allocate a code to each of 25 (32) possible input data, each of “STATE-0” and “STATE-1” includes 30 codes. 5-bit input data is encoded by selecting one of two conversion states. The last two codewords of “STATE-0” and “STATE-1” are different from each other, and state selection is determined according to whether the least significant bit of an encoded previous codeword is ‘0’ or ‘1’. In other words, if the least significant bit of the previous codeword is ‘0’, input data is converted to a codeword of “STATE-0”, and if the least significant bit of the previous codeword is ‘1’, input data is converted to a codeword of “STATE-1”. {circle around (2)} When “STATE-1” is selected, if input data is ‘11110’or ‘11111’, a least significant bit of a previous codeword is converted to ‘0’ to satisfy a j=2 constraint condition. {circle around (3)} If an encoded 6-bit output is ‘000000’ and a most significant bit of a subsequent codeword is ‘0’, the last two bits of a current codeword are converted to ‘1’. {circle around (4)} If a least significant bit of a previous codeword is ‘0’ and the first 5 bits of a current codeword are ‘0’, the first 2 bits of the current codeword are converted to ‘1’. {circle around (5)} If 7 or more consecutive 0s span between a last portion of a previous codeword and a first portion of a current codeword and the condition of the item {circle around (4)} is not satisfied, the last two bits of the previous codeword are converted to ‘1’. Accordingly, the highest acceptable value of k in the code is 6. {circle around (6)} When decoding is performed, if the last two bits of a codeword are ‘1’, the bits are converted to ‘00’, and if the first 5 bits of a codeword are ‘11000’, the bits are converted to ‘00000’. Also, if the first 3 bits of a current codeword are ‘110’ and the last 2 bits are ‘10’, a least significant bit ‘0’ of a previous codeword is converted to ‘1’. Likewise, after a conversion process corresponding to each condition is performed, an input corresponding to each codeword is decoded using the code table.
A rate-6/7 MTR code building method includes the following steps: {circle around (1)} Codewords including a ‘111’ pattern among all codewords composed of 7 bits are removed. {circle around (2)} If a k-constraint condition is not considered, the number of valid codewords not including ‘11’ at the first 2 bits or last 2 bits is 57. Therefore, to build codewords for 6-bit inputs, at least 7 (26–57) additional codewords are necessary. {circle around (3)} To build 64 codewords, 9 codewords, each beginning with ‘110’ and satisfying a j=2 MTR condition at the other 4 bits, that is, ‘1100000’, ‘1100001’, ‘1100010’, ‘1100100’, ‘1100101’, ‘1100110’, ‘1101000’, ‘1101001’, and ‘1101010’, are considered. {circle around (4)} When the 9 additional codewords are used, if a least significant bit of a previous codeword is ‘0’, the MTR constraint condition is satisfied. However, if the least significant bit of the previous codeword is ‘1’, to satisfy a j=2 condition, the last 3 bits of the previous codeword and the first 3 bits ‘110’ of a current codeword are converted as follows:                . . . 001,110 . . .  . . . 011,001 . . .        . . . 101,110 . . .  . . . 011,010 . . .        
{circle around (5)} So as not to generate a codeword where k=∞ among 66 available codewords, a codeword ‘0000000’ is removed. Here, since the longest length of consecutively generated ‘0s’ is ‘1000000,0000001’, a maximum run-length is 12 bits. {circle around (6)} To reduce the k-condition more, codewords are converted as follows:                . . . 000,000 . . .  . . . 011,000 . . .        
If the codewords are converted as shown above, since the longest length of consecutively generated ‘0s’ is ‘1000000,001 . . . ’ or ‘ . . . 100,0000001’, k becomes 8. {circle around (7)} A decoding process of an encoded code sequence is achieved by performing these steps in reverse order.
According to the code built according to the above method, the number of available codewords is 65. Accordingly, a rate-6/7 code table can be built by selecting 64 codewords out of the 65 codewords listed in Table 4, and the highest acceptable value of k in the code is 8.
TABLE 4Rate-6/7 MTR (j = 2; k = 8) code table0001000 0101000 1001000 1101000 0000001 0100001 1000001 1100001 0000010 0100010 1000010 1100010 0001001 0101001 1001001 1101001 0000100 0100100 1000100 1100100 0000101 0100101 1000101 1100101 0000110 0100110 1000110 1100110 0001010 0101010 1001010 1101010 0011000 0110001 1011000 0001100 0010001 0010000 1010001 0001101 0010010 0100000 1010010 0101100 0011001 0110000 1011001 0101101 0010100 1000000 1010100 1001100 0010101 1010000 1010101 1001101 0010110 1100000 1010110 0110100 0011010 0110010 1011010 0110101 